package com.mall.equipment.service;

import com.mall.equipment.entity.BackEntity;
import com.mall.equipment.entity.Person;

import java.io.IOException;
import java.util.List;

public interface EquipmentService {

    //设备序列号获取
    public String getDeviceKey();
    //开门
    public String openDoor();
    //设置口罩是否需要佩戴
    public String setMaskConfig(int isMaskOpen);

    /**
     *  设置设备时间
     * @return
     */
    public BackEntity setTime();

    /**
     *  识别回调
     * 设备成功识别人员后，会向该地址 POST 字段 deviceKey、time、ip、personId、path、
     * idcardNum、mode、passTimeType、 permissionTimeType、aliveType、
     * identifyType、data、type：face/card_0/1/2， 参见回调字段说明
     * @return
     */
    public BackEntity setIdentifyCallBack();
    /**
     *  回调地址查询
     * @return
     */
    public String callBack();


    /**
     *  人员注册
     * @param person
     */
    public BackEntity createPerson(Person person);

    /**
     *  批量删除人员
     * @param id id 用英文逗号拼接  传入-1 则删除所有人员
     *  以下数据会被删除，本地将不再做存储：
     *   该人员 ID、人员信息  该人员对应的识别记录、现场抓拍照片  该人员对应的注册照片
     */
    public BackEntity delPerson(String id);

    /**
     *  人员信息修改
     * @param person
     */
    public BackEntity updatePerson(Person person);

    /**
     *  每日进入时间段权限设置 设置后 该人员可自由刷卡进出
     * @param personId 用户id
     * @param time 时间段 每日的时间段 所以都是时间时分秒格式 逗号分割 最多6段 一段示例：09:00:00,11:00:00
     */
    public BackEntity createPasstime(String personId, String time);

    /**
     *  每日进入时间段权限删除 删除后即为无限制 可以随时出入
     * @param personId 用户id 逗号拼接 -1 删除所有人员的时间段权限
     */
    public BackEntity deletePasstime(String personId);

    /**
     * 人员有效期设置 设置后 到期会自动删除该用户
     * @param personId 用户id
     * @param time 有效期截止时间
     * @return
     */
    public BackEntity createPermissions(String personId,String time);

    /**
     *  人员有效期删除 删除后该人员不会被定时删除
     * @param personId 用户id 逗号拼接 -1 删除所有人员的时间段权限
     */
    public BackEntity deletePermissions(String personId);

    /**
     * 获取所有人员
     * @return
     */
    public List<Person> find();

    /**
     * 用户照片授权
     * @param personId 用户id
     * @return
     */
    public BackEntity createImg(String personId);

    /**
     * 删除人员识别记录
     * @param personId
     * @return
     */
    public BackEntity deleteRecords(String personId);

    public BackEntity newFindRecords();

    /**
     * 删除照片
     * @param personId
     * @return
     */
    public BackEntity deleteImg(String personId);

}
